package cn.initcap.concurrency.concurrency.singleton;

import cn.initcap.concurrency.annoations.NotRecomend;
import cn.initcap.concurrency.annoations.ThreadSafe;

/**
 * 懒汉模式{保证了线程安全，但是极大的影响性能}
 *
 * @author initcap
 * @date Created in 2018/6/14 PM12:26.
 */
@ThreadSafe
@NotRecomend
public class SingletonCheckLock {

    /**
     * 单例对象
     */
    private static SingletonCheckLock instance = null;

    /**
     * 私有构造函数
     */
    private SingletonCheckLock() {

    }

    /**
     * 静态的工厂方法
     */
    public static synchronized SingletonCheckLock getInstance() {
        if (instance == null) {
            instance = new SingletonCheckLock();
        }
        return instance;
    }

}
